---
title: 连接方法
hide_title: true
sidebar_position: 4
---

<Tabs
groupId="sdks-language"
values={[
{ label: 'Android', value: 'andorid', },
{ label: 'iOS', value: 'ios', },
{ label: 'JavaScript', value: 'js', }
]
}>
<TabItem value="andorid">

调用连接之后，请注册连接监听来进行后续的业务处理。

您可以在 onDbOpen() 的回调中进行会话和消息界面的展示。

您可以在 onStatusChange() 的回调中，当连接状态变为 JetIMConst.ConnectionStatus.CONNECTED 时进行消息的发送。

正常情况下，开发者只需调用 connect 一次，之后 SDK 会打开数据库，建立网络连接，并负责之后所有的断线重连逻辑。

只有出现 SDK 无法处理的情况之后才需要开发者介入，比如 token 无效、app 被封禁等等。

开发者可以在监听到 JetIMConst.ConnectionStatus.FAILURE 状态时根据错误码进行相应的处理。

#### 示例代码

```java
JetIM.getInstance().getConnectionManager().connect("token");
```

</TabItem>
<TabItem value="ios">

调用连接之后，请注册连接监听来进行后续的业务处理。

您可以在 dbDidOpen 的回调中进行会话和消息界面的展示。

您可以在 connectionStatusDidChange:errorCode 回调中，连接状态变为 JConnectionStatusConnected 时进行消息的发送。

正常情况下，开发者只需调用 connectWithToken 一次，之后 SDK 会打开数据库，建立网络连接，并负责之后所有的断线重连逻辑。

只有出现 SDK 无法处理的情况之后才需要开发者介入，比如 token 无效、app 被封禁等等。

开发者可以在监听到 JConnectionStatusFailure 状态时根据错误码进行相应的处理。

#### 示例代码

```objc
[JIM.shared.connectionManager connectWithToken:@"token"];
```
</TabItem>
<TabItem value="js">

#### 参数说明

| 参数    | 类型    | 必填 |说明                                   | 最低版本    |
|-----------|---------|-------|----------------------------------------|----------|
| user     | Object  | 是  |  | 1.0.0    |
| user.token     | String  | 是  | 用户的身份验证令牌，根据 [IM Server](../../server/user/register) 约定规则在开发者的服务端生成 | 1.0.0    |
| user.userId    | String  | 是  | 用户的 Id，与生成 Token 时传入的 userId 保持一致 | 1.0.0    |

#### 回调说明

| 属性            | 类型    | 描述                                           | 版本  |
|----------------|---------|------------------------------------------------|----------|
| error          | Object  | 连接结果                                       | 1.0.0    |
| error.code     | Number  | 连接结果状态码，详细描述请查看 [连接状态码](./status_code/web#connect) | 1.0.0    |
| error.msg      | String  | 连接结果的描述，详细描述请查看 [连接状态码](./status_code/web#connect) | 1.0.0    |

#### 示例代码

```js
let { ErrorType } = jetim;

let user = {
  token: "CgZhcHBrZXkaIDAr072n8uOcw5YBeKCcQ+QCw4m6YWhgt99U787/dEJS",
  userId: 'userId01'
};

jetim.connect(user).then((user) => {
  console.log('connect successfully', user);
}, (error) => {
  console.log('connect failed', error);
});
```

</TabItem>
</Tabs>